home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / PROGRAMMING / DESKLIBC / SOURCES.ZIP / DeskLib / !DLSources / Libraries / Icon / c / BarIconUse < prev    next >
Text File  |  1995-07-08  |  2KB  |  66 lines

  1. /*
  2.     ####             #    #     # #
  3.     #   #            #    #       #          The FreeWare C library for 
  4.     #   #  ##   ###  #  # #     # ###             RISC OS machines
  5.     #   # #  # #     # #  #     # #  #   ___________________________________
  6.     #   # ####  ###  ##   #     # #  #                                      
  7.     #   # #        # # #  #     # #  #    Please refer to the accompanying
  8.     ####   ### ####  #  # ##### # ###    documentation for conditions of use
  9.     ________________________________________________________________________
  10.  
  11.     File:    Icon.BarIconUse.c
  12.     Author:  Copyright © 1994 Peter Gaunt
  13.     Version: 1.00 (12 Mar 1994)
  14.     Purpose: Place icon on the Icon Bar, using a caller-specified sprite
  15.                area.
  16. */
  17.  
  18. #include <string.h>
  19. #include <stdlib.h>
  20.  
  21. #include "DeskLib:Wimp.h"
  22. #include "DeskLib:WimpSWIs.h"
  23. #include "DeskLib:Error.h"
  24. #include "DeskLib:Icon.h"
  25.  
  26. #define BARICON_XSIZE 68
  27. #define BARICON_YSIZE 68
  28.  
  29.  
  30. /*
  31.  * Plonk a sprite from a USER sprite area on the icon bar
  32.  * Returns icon handle.
  33.  */
  34.  
  35. extern icon_handle Icon_BarIconUser(char *spritename, window_handle pos,
  36.                                             unsigned int *area)
  37. {
  38.   icon_createblock icreate;
  39.   icon_handle      icon;
  40.   char             *iconname;
  41.  
  42.   icreate.window = pos;
  43.   icreate.icondata.flags.value = 0x1700310A;    /* Click-able sprite icon */
  44.  
  45.   iconname = malloc( wimp_MAXNAME + 1 );
  46.   if (iconname == NULL)
  47.     Error_Report(1,"Not enough memory");
  48.     
  49.   strcpy(iconname,spritename);
  50.  
  51.   icreate.icondata.data.indirectsprite.name = iconname;
  52.   icreate.icondata.data.indirectsprite.spritearea = area;
  53.   icreate.icondata.data.indirectsprite.nameisname = wimp_MAXNAME;
  54.  
  55.   icreate.icondata.workarearect.min.x =
  56.     icreate.icondata.workarearect.min.y = 0;
  57.  
  58.   icreate.icondata.workarearect.max.x =  BARICON_XSIZE;
  59.  
  60.   icreate.icondata.workarearect.max.y = BARICON_YSIZE;
  61.  
  62.   Wimp_CreateIcon(&icreate, &icon);
  63.   return(icon);
  64. }
  65.  
  66.